﻿using System;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Collections.Generic;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
using BE;


namespace DA
{
    public class daEmpleado
    {
        public static DataTable Obtener(beEmpleado oBE)
        {
            oBE.FechaIngreso = Convert.ToDateTime("00:00");
            SqlDatabase sqlClient = new SqlDatabase(Configuracion.GetConnection);
            DbCommand dbCmd = sqlClient.GetStoredProcCommand("sp_ConsultarEmpleado");
            sqlClient.AddInParameter(dbCmd, "@ID_Empleado", DbType.Int32, oBE.IDEmpleado);
            sqlClient.AddInParameter(dbCmd, "@Nombres", DbType.String, oBE.Nombres);
            sqlClient.AddInParameter(dbCmd, "@Apellidos", DbType.String, oBE.Apellidos);
            sqlClient.AddInParameter(dbCmd, "@Doc_Identidad", DbType.String, oBE.DocIdentidad);
            sqlClient.AddInParameter(dbCmd, "@Domicilio", DbType.String, oBE.Domicilio);
            sqlClient.AddInParameter(dbCmd, "@Fecha_Ingreso", DbType.DateTime , oBE.FechaIngreso);
            sqlClient.AddInParameter(dbCmd, "@Cargo", DbType.String, oBE.Cargo);
            return sqlClient.ExecuteDataSet(dbCmd).Tables[0];
        }

        public static Int32 Registrar(beEmpleado oBE)
        {
            SqlDatabase sqlClient = new SqlDatabase(Configuracion.GetConnection);
            DbCommand dbCmd = sqlClient.GetStoredProcCommand("sp_RegistrarEmpleado");
            sqlClient.AddInParameter(dbCmd, "@Nombres", DbType.String, oBE.Nombres);
            sqlClient.AddInParameter(dbCmd, "@Apellidos", DbType.String, oBE.Apellidos);
            sqlClient.AddInParameter(dbCmd, "@Doc_Identidad", DbType.String, oBE.DocIdentidad);
            sqlClient.AddInParameter(dbCmd, "@Domicilio", DbType.String, oBE.Domicilio);
            sqlClient.AddInParameter(dbCmd, "@Fecha_Ingreso", DbType.DateTime, oBE.FechaIngreso);
            sqlClient.AddInParameter(dbCmd, "@Cargo", DbType.String, oBE.Cargo);
            return Convert.ToInt32(sqlClient.ExecuteScalar(dbCmd));
        }
        public static Int32 Modificar(beEmpleado oBE)
        {
            SqlDatabase sqlClient = new SqlDatabase(Configuracion.GetConnection);
            DbCommand dbCmd = sqlClient.GetStoredProcCommand("sp_ModificarEmpleado");
            sqlClient.AddInParameter(dbCmd, "@ID_Empleado", DbType.Int32, oBE.IDEmpleado);
            sqlClient.AddInParameter(dbCmd, "@Nombres", DbType.String, oBE.Nombres);
            sqlClient.AddInParameter(dbCmd, "@Apellidos", DbType.String, oBE.Apellidos);
            sqlClient.AddInParameter(dbCmd, "@Doc_Identidad", DbType.String, oBE.DocIdentidad);
            sqlClient.AddInParameter(dbCmd, "@Domicilio", DbType.String, oBE.Domicilio);
            sqlClient.AddInParameter(dbCmd, "@Fecha_Ingreso", DbType.DateTime , oBE.FechaIngreso);
            sqlClient.AddInParameter(dbCmd, "@Cargo", DbType.String, oBE.Cargo);
            return Convert.ToInt32(sqlClient.ExecuteScalar(dbCmd));
        }
        public static Int32 Eliminar(beEmpleado oBE)
        {
            SqlDatabase sqlClient = new SqlDatabase(Configuracion.GetConnection);
            DbCommand dbCmd = sqlClient.GetStoredProcCommand("sp_EliminarEmpleado");

            sqlClient.AddInParameter(dbCmd, "@ID_Empleado", DbType.Int32, oBE.IDEmpleado );

            return Convert.ToInt32(sqlClient.ExecuteScalar(dbCmd));
            //sqlClient.ExecuteNonQuery(dbCmd);
        }
    }
}
